package hu.bme.mit.Nonogram.client;

import java.util.LinkedList;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface NonogramServiceAsync {

	void GenerateNonogram(LinkedList<String> header, AsyncCallback<String> callback);

	void getNbrOfRowsInNonogram(long id, AsyncCallback<Integer> callback);

	void getNbrOfColsInNonogram(long id, AsyncCallback<Integer> callback);

	void getRowHeaderByID(long id,
			AsyncCallback<LinkedList<LinkedList<String>>> callback);

	void getColumnHeaderByID(long id,
			AsyncCallback<LinkedList<LinkedList<String>>> callback);

	void validateRow(long id, String rowText, int rowIndex,
			AsyncCallback<Boolean> callback);

	void validateColumn(long id, String rowText, int columnIndex,
			AsyncCallback<Boolean> callback);

	void validate(LinkedList<String> nonogramText,
			LinkedList<LinkedList<String>> rowHeader,
			LinkedList<LinkedList<String>> columnHeader,
			AsyncCallback<Boolean> callback);

	void checkNonogram(long id, LinkedList<String> current,
			AsyncCallback<Boolean> callback);
}
